//统一管理首页模块接口
import request from '@/utils/request';
import type {
  AddOrUpdateUser,
  AllOrderStateResponseData,
  AllUserResponseData,
  UserOrderInfoResponseData,
  UserParams,
  CertationTypeResponseData,
  UseringoResponseData,
  PayReslt,
  QrCode,
  SubmitOrder,
  OrderResponseData
} from './type'

// 枚举请求地址
enum API {
  // 提交确定挂号
  SUBMITORDER_URL = '/order/orderInfo/auth/submitOrder/',
  // 获取订单详情
  ORDERDETAIL_URL = '/order/orderInfo/auth/getOrderInfo/',
  //取消订单的接口
  ORDERCANCEL_URL = '/order/orderInfo/auth/cancelOrder/',
  //获取支付订单二维码接口
  QRCODE_URL = '/order/weixin/createNative/',
  //查询订单支付的结果
  PAYRESULT_URL = '/order/weixin/queryPayStatus/',
  //获取当前账号用户信息
  USERINFO_URL = '/user/auth/getUserInfo',
  //获取证件的类型的接口地址
  CERTIFICATIONTYPE_URL = '/cmn/dict/findByDictCode/',
  //用户认证的结构
  USERCERTATION_URL = '/user/auth/userAuah',
  //获取用户订单列表
  USERORDERINFO_URL = '/order/orderInfo/auth/',
  //获取全部就诊人的信息
  ALLUSER_URL = '/user/patient/auth/findAll',
  //获取订单的状态
  ORDERSTATE_URL = '/order/orderInfo/auth/getStatusList',
  //获取城市的数据
  CITY_URL = '/cmn/dict/findByParentId/',
  //新增就诊人接口
  ADDUSER_URL = '/user/patient/auth/save',
  //更新已有的就诊人接口
  UPDATEUSER_URL = '/user/patient/auth/update',
  //删除已有的就诊人
  DELETEUSER_URL='/user/patient/auth/remove/'
}

export const reqSubmitOrder = (hoscode: string, scheduleId: string, patientId: number) => {
  return request.post<any, SubmitOrder>(API.SUBMITORDER_URL + `${hoscode}/${scheduleId}/${patientId}`)
}

export const reqGetOrderDetail = (id: string) => {
  return request.post<any, OrderResponseData>(API.ORDERDETAIL_URL + id)
}

//取消订单
export const reqCancelOrder = (id: string) => request.get<any, any>(API.ORDERCANCEL_URL + id);
//获取支付二维码接口
export const reqQrcode = (orderId: string) => request.get<any, QrCode>(API.QRCODE_URL + orderId);
//查询订单支付的结果
export const reqQueryPayState = (orderId: string) => request.get<any, PayReslt>(API.PAYRESULT_URL + orderId);
//获取当前用户信息的接口
export const reqUserInfo = () => {
  return request.get<any, UseringoResponseData>(API.USERINFO_URL);
}
// 获取证件的类型的接口
export const reqCertationType = (CertificatesType = 'CertificatesType') => {
  return request.get<any, CertationTypeResponseData>(API.CERTIFICATIONTYPE_URL + CertificatesType);
}
//用户认证接口
export const reqUserCertation = (data: UserParams) => {
  return request.post<any, any>(API.USERCERTATION_URL, data)
}
//获取用户订单数据接口
export const reqUserOrderInfo = (page: number, limit: number, patientId: string, orderStatus: string) => {
  return request.get<any, UserOrderInfoResponseData>(API.USERORDERINFO_URL + `${page}/${limit}?patientId=${patientId}&orderStatus=${orderStatus}`)
}
//获取全部就诊人的信息
export const reqAllUser = () => { 
  return request.get<any, AllUserResponseData>(API.ALLUSER_URL)
}
//获取全部订单的接口
export const reqOrderState = () => {
  return request.get<any, AllOrderStateResponseData>(API.ORDERSTATE_URL)
}
//获取城市的数据
export const reqCity = (parentId: string) => {
  return request.get<any, any>(API.CITY_URL + parentId)
}

//新增与修改已有的就诊人接口方法
export const reqAddOrUpdateUser = (data: AddOrUpdateUser) => {
  if (data.id) {
    return request.put<any, any>(API.UPDATEUSER_URL, data);
  } else {
    return request.post<any, any>(API.ADDUSER_URL, data);
  }
}
//删除某一个就诊人的信息
export const reqRemoveUser = (id: number)=> {
  return request.delete<any,any>(API.DELETEUSER_URL+id)
}